#ifndef _ID_COMPONENT_H_
#define _ID_COMPONENT_H_

#include "render_target_component.h"
#include <string>
#include <unordered_set>
#include <map>

class IdComponent : public RenderTargetComponent
{
public:
	std::string id;
	std::unordered_set<std::string> tags;
	std::map<std::string, std::string> properties;

	IdComponent(RenderTarget *parent, std::string componentId);

	bool hasTag(std::string tag);
	void addTag(std::string tag);
	void removeTag(std::string tag);

	bool hasProperty(std::string key);
	std::string getProperty(std::string key);
	void setProperty(std::string key, std::string val);
	void removeProperty(std::string key);
};

#endif